package com.zhao.新特性;

import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;

/**
 * @program: arithmetic-do-exercise
 * @author: zhaohuan
 * @create: 2022-11-13 16:16
 * @description
 * java 11 新特性
 **/
public class Jdk11 {

    public static void main(String[] args) {
        testCollection();
    }

    // 新特性中的string
    private static void testString() {
        String str = " ";
//        System.out.println(str.isBlank());
//        str = " 2 2 ";
//        System.out.println(str.strip());
//        System.out.println(str.stripLeading());
//        System.out.println(str.stripTrailing());
//        System.out.println(str.repeat(10));
//        str = "A\nB\nC";
//        System.out.println(str.lines().count());
    }

    // Jdk 里面为集合（List/ Set/ Map）都添加了 of 和 copyOf 方法，它们两个都用来创建不可变的集合
    private static void testCollection() {
//        var list = List.of(1,3,4);
//        var newList = List.copyOf(list);
//        System.out.println(list == newList);
//
//        // takeWhile 截断，如果出现大于某个数，后面的数都会被截断
//        System.out.println(Arrays.asList(Stream.of(1,2,3,2,1).takeWhile(n -> n < 3).collect(Collectors.toList())));
//        // drophile，拆断，不满足条件后面的数留下，包括这个数
//        System.out.println(Arrays.asList(Stream.of(1,2,3,2,1).dropWhile(n -> n < 3).collect(Collectors.toList())));



    }

//    private static void testStream() {
//        System.out.println(Stream.ofNullable(null).count());
//    }

}
